// 进度指示器实体类：用于显示游戏进度、分数等信息
class ProgressIndicator extends Entity {

    // 构造函数：初始化进度指示器
    // @param labels: 函数，返回要显示的标签和值的数组
    constructor(labels) {
        super();
        this.labels = labels;
    }

    // 渲染进度指示器
    // @param camera: 当前相机实体
    render(camera) {
        // 设置渲染位置（右上角，距离边缘50像素）
        ctx.translate(~~camera.x + CANVAS_WIDTH / 2 - 50, ~~camera.y - CANVAS_HEIGHT / 2 + 50);
        
        // 设置文本样式
        ctx.textAlign = nomangle('right');
        ctx.textBaseline = nomangle('top');
        ctx.shadowColor = '#000';
        ctx.shadowOffsetY = 2;
        ctx.fillStyle = '#fff';

        // 在触摸设备上放大1.5倍
        if (inputMode === INPUT_MODE_TOUCH) {
            ctx.scale(1.5, 1.5);
        }

        // 逐行渲染标签和值
        let y = 0;
        for (const [label, value] of this.labels()) {
            // 渲染标签
            ctx.font = nomangle('14pt Courier');
            ctx.fillText(label, 0, y);
            y += 20;  // 标签和值之间的间距

            // 渲染值
            ctx.fillText(value, 0, y);
            y += 30;  // 不同项目之间的间距
        }
    }
}
